热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

都会|本文_图文详解Docker搭建ELKStack(elk)[使用eslogstashfilebeatkibana]

篇首语:本文由编程笔记#小编为大家整理,主要介绍了图文详解Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]相关的知识,希望对你有一定的参

篇首语:本文由编程笔记#小编为大家整理,主要介绍了图文详解Docker搭建 ELK Stack (elk) [使用es-logstash-filebeat-kibana]相关的知识,希望对你有一定的参考价值。




        如果您对 elk 还不了解,那么可以先直戳下方官方链接,官方通过图形化界面很形象地介绍了elk stack(Elastic  Stack)。


 ELK Stack:Elasticsearch 的开发者倾心打造 | Elastic


| 准备工作(统一版本7.16.1)

本文使用软件(centos7,moba)

| 拉取es镜像

docker pull elasticsearch:7.16.1

|| 拉取kibana镜像 

docker pull kibana:7.16.1

||| 拉取logstash镜像

docker pull logstash:7.16.1

|||| 拉取filebeat镜像

docker pull docker.elastic.co/beats/filebeat:7.16.1

拉取完成后使用命令查看镜像信息,如下所示:

docker images


| 设置elk的网络

这里取名为elbk-net(都是首字母啦)

docker network create elbk-net

 若你拥有可视化界面portainer,则可在network中查看


| 分别启动各容器

1.启动es(本文以单节点演示)

docker run \\
-d --name es \\
-p 9200:9200 \\
-p 9300:9300 \\
-e "discovery.type=single-node" \\
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \\
--net elbk-net \\
elasticsearch:7.16.1

2.启动 kibana

docker run \\
-v /opt/docker/elbk/kibana:/usr/local/etc/elbk/kibana/config \\
-p 5601:5601 -d \\
--net elbk-net \\
--name kibana \\
kibana:7.16.1

若您等待了很长时间访问kibana见到如下界面,请参考:

【解决】Kibana server is not ready yet:Docker启动kibana迟迟未成功_hah杨大仙的博客-CSDN博客

启动成功可看到如下界面


3.配置启动logstash



| 添加如下两个文件,需将文件中 ip地址 修改为 你的ip地址 


目录结构如下图所示:



logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: 192.168.21.128:9200

logstash.conf

input
beats
port => 5678

filter
# Only matched data are send to output.
output
elasticsearch
hosts => ["http://192.168.21.128:9200"] # ElasticSearch host, can be array.
index => "mylog-%+YYYY.MM" # The index to write data to.


  • input:输入
    • beats是我们后面要启动的filebeat,filebeat通过port:5678将收集的日志发送给logstash
  • filter:过滤
  • output:输出

启动 logstash

docker run -d \\
-p 5678:5678 --net elbk-net \\
--name logstash -p 5066:5066 -p 5067:5067 \\
-v /opt/docker/elbk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \\
-v /opt/docker/elbk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \\
logstash:7.16.1

使用docker ps查看正在运行的容器,启动成功 


4.配置启动filebeat


  • 新建需要收集的日志文件:
  • 内容大致如下(springcloud微服务中的网关模块启动日志,这里仅做demo演示)

创建filebeat文件夹并创建 filebeat.yml 文件,目录如下图所示(规范一点多多益善啦)

filebeat.yml 内容如下

filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/docker/elbk/test/elbk-test.log
output.logstash:
hosts: ["192.168.21.128:5678"]

  • paths:测试日志的存放位置
  • hosts:你的ip地址,5678端口是与上面启动的logstash对应

启动filebeat

同样记得修改ip为你的ip

docker run \\
-u root \\
-v /opt/docker/elbk/test:/opt/docker/elbk/test:rw \\
-v /opt/docker/elbk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \\
-e setup.kibana.host=192.168.21.128:5601 -d \\
--name filebeat --net elbk-net \\
docker.elastic.co/beats/filebeat:7.16.1

  •  ro:
    • 文件:容器内不能修改,会提示read-only
    • 文件夹:容器内不能修改、新增、删除文件夹中的文件,会提示read-only
  • rw:
    • 文件:不管是宿主机还是容器内修改,都会相互同步,但容器内不允许删除,会提示Device or resource busy;宿主机删除文件,容器内的不会被同步

    • 文件夹:不管是宿主机还是容器内修改、新增、删除文件,都会相互同步

启动成功后查看正在运行的容器

docker ps

也可通过可视化界面查看


全部启动成功!!

接下来我们使用 kibana 看一下效果


| 测试

1.使用您的ip地址加5601(启动kibana指定的端口)即可看到如下界面 

2.点击可看到如下界面

3.这里还是切回英文版演示(ps:kibana是可以设置为中文的,找找度娘,很简单,在这里不是重点,就不操作啦)

4.选择堆栈管理

5.选择索引配置

6.点击后关闭弹出框

7.该界面告诉你已有数据,点击创建索引进入 正则选择索引库,若如下图所示匹配到上面logstash.conf定义的索引即代表成功!!

8.即可进入如下界面 

9.此时再使用es-head头插件查看即可看到已生成索引库!!

10.且已存入数据~

11.接下来如下图所示操作即可看到创建时写入的数据!!

12.根据条件筛选

13.此时在该日志文件再写入一条信息

14.回到kibana查看

15.ok,至此 elk stack 搭建 及 demo测试 就到此结束啦!!good luck!!


..



Thanks 

..


推荐阅读
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Docker 环境下 MySQL 双主同步配置指南
    本文介绍了如何在 Docker 环境中配置 MySQL 的双主同步,包括目录结构的创建、配置文件的编写、容器的创建与设置以及最终的验证步骤。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • Vue 实现表格分页功能详解
    本文将详细介绍如何在 Vue 中实现表格的分页功能,包括代码示例和具体实现步骤,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 1.创建目录mkdir-phomerocketmqnamesvr1data&&mkdir-phomerocketmqnamesvr1log&&mkdir-phomerocketm ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
author-avatar
幸福的肖巍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有